﻿using JncInterProcess;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VisionBaseLib
{
    public abstract class Vision_Base
    {
        public abstract void Init();//初始化
        public abstract void StartVision();//启动程序

        public abstract void ExitVision();//退出程序运行

        public abstract void Stop();//关闭进程

        public abstract void SwitchToRun();//切换至运行

        public abstract void SwitchToEdit(); //切换至编辑

        public abstract void GetPorgramList(ref List<ProgramInfo> info);//获取工程列表

        public abstract void ShowVisionWindow(); //显示窗口

        public abstract void HideVisionWindow(); //隐藏窗口

        public abstract void StartRun();//开始运行

        public abstract void StopRun();//停止运行

        public abstract void ResetRun();//清除数据

        public abstract void GetCurrentPorgram(out string current_program);//获取当前工程名    

        public abstract void GetEditRunMode(out string mode);//获取编辑模式

        public abstract void GetRunStatus(out string status);//获取运行状态

        public abstract void IsConnected();//获取连接状态

        public abstract void GetAllVars();//获取变量

        public abstract void SetVarValue();//设置变量

        public abstract bool SwitchProgram(string name);//切换工程

        public abstract void GetHardwareStatus(out List<HardwareStatus> list);//硬件状态
    };

}
